The invention relates to a method of decoding Reed-Solomon (RS)-coded data signals as described in the introductory part of claim 1.
An RS code is a systematic block code of the length n, in which k information symbols are added to (n-k)=p check words. Information symbols are not changed by the coding process. The RS code has a minimum Hamming distance of d=p+1 which can be optionally used in a decoding operation for error recognition or error correction.
In a decoding operation there is no distinction between data words and check words. An RS code block comprises n symbols, a symbol having a width of .gtoreq.1 bits. A symbol width of 8 bits is generally used. For each symbol error t, 2t check words are required for a correction in order to compute an error location X.sub.i and an error value Y.sub.i. If the erroneous symbol is marked as an erasure, the error location X.sub.i is known. In this case only a single check word is required for computing the error value Y.sub.i. For RS codes the relation 2t+e.ltoreq.p=n-k=d-1 applies, in which e indicates the number of erasures. In connection with recording and reproducing data signals on/from magnetic tapes, the term erasures is understood to include drop-out disturbances in the reproduced data signal or drop-out of a data transmission channel and an associated data signal drop- out. Further details on RS codes can be found in the magazine "IBM Journal RES Develop": "On-the-fly decoder for multiple byte errors", vol. 30, no. 3, May 1986, pp. 259 to 269.
Principally, an RS code of the distance d is defined via the code generator polynomial ##EQU1## It is essential that G(x) has p consecutive zeros.
In many RS codes b is set 0, but b may alternatively be an arbitrary constant which is smaller than 2.sup.m. For example, in the D1 standard (Standard for Recording Digital Television Signals on Magnetic Tape in Cassettes; European Broadcast Union; Tech 3252-E) a code generator polynomial starting with b=0 is fixed in conformity with G(x)=(x+.alpha..sup.0) (x+.alpha..sup.1) . . . (x+.alpha..sup.15) and in an ISO standard a code generator polynomial starting with b=120 is fixed in conformity with G(x)=(x+.alpha..sup.120) . . . (x+.alpha..sup.135). Both code generator polynomials are only distinguished by a constant offset in exponents of .alpha..
A circuit arrangement for decoding RS-coded data is known from the conference publication "IEEE 1990 Custom Integrated Circuits Conference": "A 40 MHz Encoder/Decoder Chip generated by a Reed-Solomon Code Compiler" pp. 13.5.1 to 13.5.4, CH 2860-5/90/0000-0065. In this arrangement syndromes of the received data words of a transmission channel are computed in a first stage. In a subsequent, second stage error location and error value polynomials of these syndromes are computed in accordance with a Euclid's algorithm, which polynomials are subsequently subjected to a Chien zero search in a third stage. With the aid of the error locations and error values thus determined, the actual correction of the data present is performed by means of an exclusive-OR gate in a fourth stage. This known circuit arrangement can only decode a data signal generated in accordance with the code generator polynomial G(x)=(x+.alpha..sup.0)(x+.alpha..sup.1) . . . (x+.alpha..sup.15).